﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLTV_V2.DataAccess;
using QLTV_V2.BussinessObject;
using QLTV_V2.BussinessLogic;
namespace QLTV_V2
{
    public partial class FrmNhanVien : DevComponents.DotNetBar.Office2007RibbonForm
    {
        public FrmNhanVien()
        {
            InitializeComponent();
        }
        public string MaNV;
        public int kt;
        DanhMucBUS dmBUS = new DanhMucBUS();
        Utilities uti = new Utilities();
        NhanVien nv = new NhanVien();
        private void FrmNhanVien_Load(object sender, EventArgs e)
        {
            radio_Nam.Checked = true;
            dat_NgaySinh.Value = System.DateTime.Now;
            if (kt == 2)//sửa thông tin nhân viên
            {
                nv = dmBUS.GetInfoNhanVien(MaNV);
                txt_MaNV.Text = nv.MaNV;
                txt_TenNV.Text = nv.TenNV;
                txt_Chucvu.Text = nv.ChucVu;
                dat_NgaySinh.Value = nv.NgaySinh;
                if (nv.GioiTinh == 1)
                    radio_Nam.Checked = true;
                else
                    radio_Nu.Checked = true;
                txt_Diachi.Text = nv.DiaChi;
                txt_Email.Text = nv.Email;
                txt_SoDT.Text = nv.SoDT;
                txt_LinkAnh.Text = nv.AnhCaNhan;
                pic_AnhCaNhan.BackgroundImage = System.Drawing.Image.FromFile(txt_LinkAnh.Text, true);
                txt_MatKhau.Text = nv.MatKhau;
            }
        }

        private void btn_Luu_Click(object sender, EventArgs e)
        {
            //Luu anh
            string img = txt_LinkAnh.Text.Substring(txt_LinkAnh.Text.LastIndexOf('\\') + 1);
            if (img != "")
            {
                try
                {
                    pic_AnhCaNhan.Image.Save(Application.StartupPath + @"\Images\Users\" + img);
                }
                catch
                {

                }
            }
            nv = getTTNhanVien();
            if (checkSave(nv) == true)
            {
                if (kt == 1)//Thêm nhân vien
                {
                    if (uti.CheckExitsValue("NhanVien", "MaNV", nv.MaNV) == true)
                    {
                        if (dmBUS.InsertNhanVien(nv) == true)
                        {
                            MessageBox.Show("Lưu thành công!", "Thông báo");
                            txt_MaNV.Text = "";
                            txt_TenNV.Text = "";
                            txt_Chucvu.Text = "";
                            txt_Diachi.Text = "";
                            txt_Email.Text = "";
                            txt_MatKhau.Text = "";
                            txt_SoDT.Text = "";
                            dat_NgaySinh.Value = System.DateTime.Now;
                        }
                        else
                            MessageBox.Show("Không thể lưu", "Thông báo");
                    }
                    else
                        MessageBox.Show("Mã nhân viên" + nv.MaNV + " đã tồn tại !");
                }
                else //sửa thông tin
                {
                    if (nv.MaNV.ToUpper() != MaNV.ToUpper())
                    {
                        if (uti.CheckExitsValue("NhanVien", "MaNV", nv.MaNV) == true)
                        {
                            if (dmBUS.UpdateNhanVien(MaNV, nv) == true)
                                this.Close();
                            else
                                MessageBox.Show("Không thể lưu", "Thông báo");
                        }
                        else
                            MessageBox.Show("Mã nhân viên" + nv.MaNV + " đã tồn tại !");    
                    }
                    else
                    {
                        if (dmBUS.UpdateNhanVien(MaNV, nv) == true)
                            this.Close();
                        else
                            MessageBox.Show("Không thể lưu", "Thông báo");
                    }
                }
            }
        }

        private void btn_ChonAnh_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "All File (*.*)|*.*|JPG Files(*.JPG)|*.JPG | GIF Files(*.GIF)|*.GIF";
            if (ofd.ShowDialog(this) == DialogResult.OK)
            {
                pic_AnhCaNhan.Image = Image.FromFile(ofd.FileName);
                string filename = ofd.FileName;
                txt_LinkAnh.Text = filename.ToString();
            }
        }
        NhanVien getTTNhanVien()
        {
            nv.MaNV = txt_MaNV.Text;
            nv.TenNV = txt_TenNV.Text;
            nv.ChucVu = txt_Chucvu.Text;
            nv.NgaySinh = dat_NgaySinh.Value;
            if (radio_Nam.Checked == true)
                nv.GioiTinh = 1;
            else
                nv.GioiTinh = 0;
            nv.DiaChi = txt_Diachi.Text;
            nv.Email = txt_Email.Text;
            nv.SoDT = txt_SoDT.Text;
            string img = txt_LinkAnh.Text.Substring(txt_LinkAnh.Text.LastIndexOf('\\') + 1);
            if (img != "")
                nv.AnhCaNhan = @"Images\Users\" + img;
            else
            {
                nv.AnhCaNhan = @"Images\Users\no-avatar.jpg";
            }
            nv.MatKhau = txt_MatKhau.Text;
            return nv;
        }
        bool checkSave(NhanVien nv)
        {
            if (nv.MaNV.Equals(""))
            {
                MessageBox.Show("Mã nhân viên không được để trống !", "Thông báo");
                txt_MaNV.Focus();
                return false;
            }
            if (nv.MatKhau.Length < 6)
            {
                MessageBox.Show("Mật khẩu phải >=6 ký tự","Thông báo");
                txt_MatKhau.Focus();
                return false;
            }
            if (txt_Email.Text != "")
                if (uti.isValidEmail(txt_Email.Text) == false)
                {
                    MessageBox.Show("Email không hợp lệ", "Thông báo");
                    txt_Email.Focus();
                    return false;
                }
            if (txt_SoDT.Text != "")
                if (uti.checkDigit(txt_SoDT.Text) == false || txt_SoDT.Text.Length > 15)
                {
                    MessageBox.Show("Số điện thoại không hợp lệ", "Thông báo");
                    txt_SoDT.Focus();
                    return false;
                }
            return true;
        }

        private void btn_Huy_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
